package com.qijian.business.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.enums.ApprovalDescriptionEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 报检计划对象
 *
 * @author qijian
 * @date 2023-01-30
 */

@Data
@ToString
public class InspectionReportPlanModelVo {

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "内码")
    private Long id;

    @Excel(name = "编号")
    @ApiModelProperty(value = "编号")
    private String number;

    @Excel(name = "开工令")
    private String projectMachineNo;


    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "设备ID")
    private Long eqpId;

    @Excel(name = "项目名称")
    @ApiModelProperty(value = "项目名称")
    private String projectName;

    @Excel(name = "项目经理")
    @ApiModelProperty(value = "项目经理")
    private String nickName1;

    @Excel(name = "设备名称")
    @ApiModelProperty(value = "设备名称")
    private String eqpName;

    @Excel(name = "报检位置")
    @ApiModelProperty(value = "报检位置")
    private String locationName;

    @Excel(name = "紧急程度", dictType = "degree_urgency")
    @ApiModelProperty(value = "紧急程度")
    private Long urgency;

    @Excel(name = "报检类型")
    @ApiModelProperty(value = "报检类型")
    private String inspectionType;

    @Excel(name = "图号")
    @ApiModelProperty(value = "图号")
    private String drawingNo;

    @Excel(name = "版本号")
    @ApiModelProperty(value = "版本号")
    private String versionNo;

    @Excel(name = "报检内容")
    @ApiModelProperty(value = "报检内容")
    private String inspectionContent;

    @Excel(name = "自检描述")
    @ApiModelProperty(value = "自检描述")
    private String selfDescription;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "检验员内码")
    private Long checkId;

    @Excel(name = "检验员名称")
    @ApiModelProperty(value = "检验员名称")
    private String checkName;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "检验班组")
    private Long checkType;

    @Excel(name = "预计检验时间(h)")
    @ApiModelProperty(value = "预计检验时间")
    private BigDecimal estimateCheckTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报检时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "报检时间")
    private Date checkTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "检验开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "检验开始时间")
    private Date checkStartTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "检验登记时间")
    private Date checkRegisterTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "检验结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "检验结束时间")
    private Date checkEndTime;

    @Excel(name = "是否合格", readConverterExp = "false=否,true=是")
    @ApiModelProperty(value = "是否合格")
    private Boolean qualified;

    @ApiModelProperty(value = "变更类型（1=修改，2=删除）")
    private Integer changeType;

    @Excel(name = "检验备注")
    @ApiModelProperty(value = "检验备注")
    private String checkRemarks;

    @ApiModelProperty(value = "审核者")
    private String approvalBy;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "审核时间")
    private Date approvalTime;

    @ApiModelProperty(value = "审核状态")
    private ApprovalDescriptionEnum approvalStatus;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "创建人内码")
    private Long createId;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "操作人内码")
    private Long operatorId;

    @Excel(name = "操作人")
    @ApiModelProperty(value = "操作人")
    private String operatorBy;

    @Excel(name = "报检备注")
    @ApiModelProperty(value = "报检备注")
    private String inspectRemark;

    @ApiModelProperty(value = "辅助质检员id")
    private String assistCheckIds;

    //@Excel(name = "辅助质检员")
    @ApiModelProperty(value = "辅助质检员")
    private String assistCheckNames;


    @Excel(name = "报检部门")
    private String deptName;

   // @Excel(name = "检验工序")
    private String checkTypeName;

    private String itemName;

    private String projectId;

}
